Reusing and redistributing information and content from one web site to another is an ad hoc and expensive process. The Information and Content Exchange (ICE) protocol was developed to manage and automate the establishment of syndication relationships, data transfer, and results analysis. When combined with an industry specific vocabulary, ICE provides a solution for syndicating any type of information between providers and their subscribers. The provider of content, or information, is referred to as a syndicator. The syndicator uses ICE to send information and content to the subscriber. The subscriber uses ICE to obtain information and content from the syndicator. A subscription is an agreement to deliver a package sequence from the syndicator to the subscriber. There may be many independent subscriptions between a syndicator and a subscriber.
ICE is an application of the Extensible Mark-up Language (XML). Basic concepts in ICE are represented using the element/attribute mark-up model of XML. The ICE protocol works in conjunction with XML document type definitions (DTDs). A DTD describes the contents of a document. The ICE protocol covers four general types of operations: subscription establishment and management, data delivery, event logs, and miscellaneous. From the ICE perspective, a relationship between a syndicator and a subscriber starts off with some form of subscription establishment. In ICE, the subscriber typically begins by obtaining a catalog of possible subscriptions (subscription offers) from the syndicator. The subscriber then subscribes to particular subscriptions, possibly engaging in protocol parameter negotiation to arrive at mutually agreeable delivery methods and schedules.
The relationship then moves on to the steady state, where the primary messages being exchanged center on data delivery. ICE uses a package concept as a container mechanism for generic data items. ICE defines a sequenced package model allowing a syndicator to support both incremental and full update models. ICE also defines push and pull data transfer models.
Managing exceptional conditions and being able to diagnose problems is an important part of syndication management. Accordingly, ICE defines a mechanism by which event logs can be automatically exchanged between the subscriber and the syndicator.
Finally, ICE provides a number of mechanisms for supporting miscellaneous operations, such as the ability to renegotiate protocol parameters in an established relationship, the ability to send unsolicited ad-hoc notifications (e.g., textual messages) between systems (presumably ultimately targeted at administrators), the ability to query and ascertain the state of the relationship, etc.
The ICE protocol is a request/reply protocol that allows for fully symmetric implementations, where both the syndicator and subscriber can initiate requests. The ICE protocol also allows for a minimal subscriber implementation where only the subscriber can initiate requests
ICE uses payload exchange as its fundamental protocol model, where a payload is typically defined as a single instance of an XML document formatted according to the ICE protocol definition. Payloads can contain requests, responses or unsolicited messages. The unsolicited messages are used to support minimal subscriber implementations. A request is a message asking for the performance of an operation, and a payload is used to transmit the request. For example, when a subscriber wishes to initiate a relationship by obtaining a catalog from a syndicator, the subscriber sends the syndicator a payload containing a “get catalog” request. Similarly, a response is a message containing the results of an operation and a payload is also used to transmit responses.